namespace OasisCiq.Xnl
{
    using System.Collections.Specialized;
    using CommonTypes;
    using External;
    using XS;

    /// <summary>
    /// Name or part of a name.
    /// </summary>
    public class PersonNameElement : CTString, IAbbreviationGroup, IExtendedAttributes
    {
        public PersonNameElement(string value)
            : base(value)
        {
        }

        /// <summary>
        /// Clarifies the meaning of the element. Could be first name, middle name,
        /// etc. That is defined in the List list. Omit this attribute if the type of
        /// the name element is not known.
        /// </summary>
        public PersonNameElementList ElementType { get; set; }

        public XSBoolean Abbreviation { get; set; }

        public NameValueCollection ExtendedAttributes { get; set; }
    }
}